/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */
package com.svh.Servicios;

import com.svh.Dao.Impl.MarcaDaoImpl;
import com.svh.Dao.Impl.ProductoDaoImpl;
import com.svh.Dao.Impl.SubTipoProductoMarcaDaoImpl;
import com.svh.Dao.MarcaDao;
import com.svh.Dao.ProductoDao;
import com.svh.Dao.SubTipoProductoMarcaDao;
import com.svh.Entidad.Marca;
import com.svh.Entidad.Producto;
import com.svh.Entidad.SubtipoProductoMarca;
import com.svh.Hibernate.HibernateConexion;
import com.svh.Utils.IConexion;
import com.svh.Utils.Utilitario;
import java.util.ArrayList;
import java.util.List;

/**
 *
 * @author David
 */
public class SubtipoProductoMarcaServicio {
    
    private final SubTipoProductoMarcaDao daoSubTipoProductoMarca;
    
    private final MarcaDao daoMarca;
    
    private final ProductoDao daoProducto;
    
    private final IConexion conexion;

    public SubtipoProductoMarcaServicio() {
        conexion = new HibernateConexion();
        daoSubTipoProductoMarca = new SubTipoProductoMarcaDaoImpl(conexion);
        daoMarca = new MarcaDaoImpl(conexion);
        daoProducto = new ProductoDaoImpl(conexion);
    }
    
    public List<SubtipoProductoMarca> obtenerSubtipoProductoMarca(){
        conexion.beginConexion();
        List<SubtipoProductoMarca> list_aux = new ArrayList();
        list_aux = daoSubTipoProductoMarca.obtenerTodos(SubtipoProductoMarca.class);
        conexion.closeConexion();
        return list_aux;
    }
    
    public List<Marca> obtenerMarcas(){
        conexion.beginConexion();
        List<Marca> list_aux = new ArrayList();
        list_aux = daoMarca.obtenerTodos(Marca.class);
        return list_aux;
    }
    
    public List<Producto> obtenerProductos(){
        conexion.beginConexion();
        List<Producto> list_aux = new ArrayList();
        list_aux = daoProducto.obtenerTodos(Producto.class);
        return list_aux;
    }
    
    public void registrarSubProducto(SubtipoProductoMarca subProducto){
        conexion.beginTransaccion();
        daoSubTipoProductoMarca.agregar(subProducto);
        Utilitario.enviarMensajeGlobalValido("Se ha registrado correctamente");
        conexion.closeTransaccion();
    }
    
    public void actualizarSubProducto(SubtipoProductoMarca subProducto){
        conexion.beginTransaccion();
        daoSubTipoProductoMarca.actualizar(subProducto);
        Utilitario.enviarMensajeGlobalValido("Se ha actualizado correctamente");
        conexion.closeTransaccion();
    }
    
    public SubtipoProductoMarca obtenerSubtipoProductoMarcaPorID(int id){
        SubtipoProductoMarca aux = null;
        conexion.beginConexion();
        aux = daoSubTipoProductoMarca.getSubtipoProductoMarca(id);
        conexion.closeConexion();
        return aux;        
    }
    
    
}
